/**
 * @author Paulo Faria Reis
 * @created 15 Mar 2012
 *
 */
package fileoperations;

/**
 * @author Paulo Faria Reis
 */
public class FileSender extends Thread {

	String fileHash;	// ID (hash) of file to send.  
	// TODO Mudar a estrutura de dados de chunksRequested para uma qe seja mais adequada.
	int[] chunksRequested;	// Array with chunks of files to send.
	
	/**
	 * @param controlPayload 
	 * 
	 */
	public FileSender(String controlPayload) {
	   // TODO Dividir a controlPayload no SHA e nos chunks caso sejam especificados.
	   // TODO Se não forem especificados chunks, fazer o cálculo e colocar todos os valores possíveis em chunksRequested.
	}
	
	/* (non-Javadoc)
	 * @see java.lang.Thread#run()
	 */
	@Override
	public void run() {

	   // TODO Procurar se o ficheiro SHA está partilhado, em caso negativo terminar operação da thread.
	   if(filePresent(fileHash)){
		processChunks();	// Serve para remover os chunks solicitados que não existem localmente.
		// TODO Se o ficheiro existe no PC e as chunks solicitadas existem, realizar as 2 ações dos requisitos.
		// if chunksRequested.size > 0 then enviar chunk aleatoria
		System.out.println("Sending a file.");
	   }
	}

	private boolean filePresent(String fHash) {
	   // TODO Criar método que procura ficheiro localmente.
	   return false;
	}
	
	private void processChunks() {
	   // TODO verificar se os chunks solicitados existem, remover os que estiverem em falta de chunksRequested. 
	}
	
}
